昨天我們實測了「橋接模式」,成功讓虛擬機拿到真實的區網 IP,本機也能順暢連線。
那可能會遇到一個問題:
「如果我今天帶著筆電去圖書館、咖啡廳,或是連手機熱點,橋接模式動不動就連不上網路,但我又想把網路切回最穩定的 NAT 模式,難道就只能放棄從本機連線進去嗎?」
完全不需要!
今天我們要來學—連接埠轉送(Port Forwarding)。讓你的虛擬機在最安全、最穩定的 NAT 模式下,依然能讓實體主機輕鬆連進去。
1.什麼是連接埠轉送?
NAT 模式就像把虛擬機藏在一棟門禁森嚴的大樓裡面,實體主機在外面敲門,警衛根本不知道你要找誰。
而連接埠轉送的概念,就是跟警衛約定好一條規則
2.常見的服務與連接埠速查
在設定轉發之前,先認識兩個會用到的通道
| 服務名稱 | 預設連接埠 | 用途說明 | 建議轉發設定(主機 ➔ 客體) |
|---|---|---|---|
| SSH | 22 | 文字終端機遠端登入、VS Code 遠端開發 | 2222 ➔ 22 |
| HTTP | 80 | 架設網站 | 8080 ➔ 80 |
為什麼主機的埠號不直接用 22?
在 Windows 或 macOS 上,小於 1024 的埠號通常需要系統管理員特殊權限,甚至本機可能已經有內建服務佔用了 22。因此習慣上會把主機埠號設定為高位數(如 2222、8080),避開衝突。
3.設定連接埠轉送
我們以SSH 連線通道(2222 ➔ 22) 為例進行設定:
步驟 1:確認虛擬機回到 NAT 模式
1.在 VirtualBox 主畫面選中你的虛擬機,點擊「設定」 ➔ 「網路」。
2.適配器 1 的「附加到」切換回「NAT」(若原本就是 NAT 則不需改動)。
3.點擊「連接埠轉送」按鈕。
步驟 2:新增轉發規則
點擊右側的「新增規則(綠色加號)」,填入以下數值:
主機 IP 與客體 IP 直接留空也可以,留空代表本機所有網卡都能轉發到該虛擬機的第一張網卡,最省事且不易出錯。
填完後點擊確定儲存。
4.在 Ubuntu 安裝 SSH 伺服器並連線
步驟 1:在 Ubuntu 安裝 OpenSSH Server
啟動虛擬機,打開終端機(Ctrl + Alt + T),輸入
# 更新套件清單並安裝 SSH 服務端
sudo apt update
sudo apt install -y openssh-server
# 確認 SSH 服務正常啟動中
sudo systemctl status ssh
看到綠色的 active (running) 就代表 22 連接埠已經在正常監聽了!)
步驟 2:從 Windows 實體主機連線進虛擬機
回到 Windows 主機,按下 Win + R 輸入 cmd 打開命令提示字元,輸入連線指令
ssh -p 2222 你的Ubuntu帳號@127.0.0.1
(例如:ssh -p 2222 ithome@127.0.0.1)
1.第一次連線會跳出公鑰指紋確認:Are you sure you want to continue connecting (yes/no)?,輸入 yes 並按 Enter。
2.輸入你在Ubuntu 設定的使用者密碼(輸入時螢幕不會顯示字元,直接打完按 Enter 即可)。
登入成功!
你會看到 Windows 的 CMD 提示字元變成了ithome@ithome-VirtualBox:~$
這代表你已經直接在 Windows 終端機裡操作虛擬機的 Linux 系統了,甚至完全不用打開 VirtualBox 的桌面視窗。
5.NAT + 連接埠轉送有什麼優點?
1.隨處都可使用:
2.記憶體極度節省:
|明日目標:我們要來學如何複製虛擬機,並比較「完整複製」與「連結複製」的差別。|